The present technology relates to non-volatile memory.
Semiconductor memory has become increasingly popular for use in various electronic devices. For example, non-volatile semiconductor memory is used in cellular telephones, digital cameras, personal digital assistants, mobile computing devices, non-mobile computing devices and other devices. Electrically Erasable Programmable Read Only Memory (EEPROM) and flash memory are among the most popular non-volatile semiconductor memories. With flash memory, also a type of EEPROM, the contents of the whole memory array, or of a portion of the memory, can be erased in one step, in contrast to the traditional, full-featured EEPROM.
Both the traditional EEPROM and the flash memory utilize a floating gate that is positioned above and insulated from a channel region in a semiconductor substrate. The floating gate is positioned between the source and drain regions. A control gate is provided over and insulated from the floating gate. The threshold voltage (VTH) of the transistor thus formed is controlled by the amount of charge that is retained on the floating gate. That is, the minimum amount of voltage that must be applied to the control gate before the transistor is turned on to permit conduction between its source and drain is controlled by the level of charge on the floating gate.
Some EEPROM and flash memory devices have a floating gate that is used to store two ranges of charges and, therefore, the memory element can be programmed/erased between two states, e.g., an erased state and a programmed state. Such a flash memory device is sometimes referred to as a binary flash memory device because each memory element can store one bit of data.
A multi-state (also called multi-level) flash memory device is implemented by identifying multiple distinct allowed/valid programmed threshold voltage ranges. Each distinct threshold voltage range corresponds to a predetermined value for the set of data bits encoded in the memory device. For example, each storage element can store two bits of data when the element can be placed in one of four discrete charge bands corresponding to four distinct threshold voltage ranges.
Typically, a program voltage VPGM applied to the control gate during a program operation is applied as a series of pulses that increase in magnitude over time. The program voltage can be applied to a selected word line. In one possible approach, the magnitude of the pulses is increased with each successive pulse by a predetermined step size, e.g., 0.2-0.4 V. VPGM can be applied to the control gates of flash memory elements. In the periods between the programming pulses, verify operations are carried out. That is, the programming level of each element of a group of storage elements being programmed in parallel is read between successive programming pulses to determine whether it is equal to or greater than a verify level to which the element is being programmed. For arrays of multi-state flash memory elements, a verification step may be performed for each state of an element to determine whether the element has reached its data-associated verify level. For example, a multi-state memory element capable of storing data in four states may need to perform verify operations for three compare points.
Moreover, when programming an EEPROM or flash memory device, such as a NAND flash memory device in a NAND string, typically VPGM is applied to the control gate and the bit line is grounded, causing electrons from the channel of a cell or memory element, e.g., storage element, to be injected into the floating gate. When electrons accumulate in the floating gate, the floating gate becomes negatively charged and the threshold voltage of the memory element is raised so that the memory element is considered to be in a programmed state.
However, shifts in the apparent charge stored on a floating gate or other charge storage region can occur because of coupling of an electric field based on the charge stored in neighboring floating gates. The floating gate-to-floating gate coupling phenomena occurs most pronouncedly, although not exclusively, between sets of adjacent storage elements that have been programmed at different times. For example, a first storage element can be programmed to add a level of charge to its floating gate that corresponds to a set of data. Subsequently, one or more adjacent storage elements are programmed to add a level of charge to their floating gates that correspond to a set of data. After one or more of the adjacent storage elements are programmed, the charge level read from the first storage element may appear to be different than when it was programmed because of the effect of the charge on the adjacent storage elements(s) being coupled to the first storage element. The coupling from adjacent storage elements can shift the apparent charge level being read from a selected storage element by a sufficient amount to lead to an erroneous reading of the stored data.
Moreover, as storage elements continue to shrink in size, the natural programmed and erase distributions of threshold voltages are expected to increase due to short channel effects, greater oxide thickness/coupling ratio variations and more channel dopant fluctuations, reducing the available separation between adjacent states. The reduction of the space between word lines and between bit lines will also increase the coupling between adjacent floating gates. The effect of the floating gate-to-floating gate coupling is of greater concern for multi-state devices because the allowed threshold voltage ranges and the forbidden ranges (range between two distinct threshold voltage ranges that represent distinct memory states) are narrower than in binary devices. Therefore, floating gate-to-floating gate coupling can result in storage elements being shifted from an allowed threshold voltage range to a forbidden range. Read errors can result.